﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using SC.eWedding.BusinessLogic.Views;
using SC.eWedding.BusinessLogic.Handlers;
using Circo.Framework.BusinessLogic.Views.Filters;

public partial class Proveedor_Controles_veProveedor : System.Web.UI.UserControl
{
    #region Propiedades Publicas
    public string NombreEmp
    {
        get { return txtNombre.Text; }
        set { txtNombre.Text = value; }
    }

    public string NombreResp
    {
        get { return txtNombreResp.Text; }
        set { txtNombreResp.Text = value; }
    }

    public string ApellResp
    {
        get { return txtApellResp.Text; }
        set { txtApellResp.Text = value; }
    }

    public string DNI
    {
        get { return txtDNI.Text; }
        set { txtDNI.Text = value; }
    }

    public string Contrasenia
    {
        get { return txtContrasenia.Text; }
        set { txtContrasenia.Text = value; }
    }

    public string Usuario
    {
        get { return txtUsuario.Text; }
        set { txtUsuario.Text = value; }
    }

    public int Localidad
    {
        get { return int.Parse(ddlLocalidad.SelectedValue); }
        set { ddlLocalidad.SelectedValue = value.ToString(); }
    }

    public int Provincia
    {
        get { return int.Parse(ddlProvincia.SelectedValue); }
        set { ddlProvincia.SelectedValue = value.ToString(); }
    }

    public string Direccion
    {
        get { return txtDireccion.Text; }
        set { txtDireccion.Text = value; }
    }

    public string Telefono
    {
        get { return txtTelefono.Text; }
        set { txtTelefono.Text = value; }
    }

    public string Mail
    {
        get { return txtMail.Text; }
        set { txtMail.Text = value; }
    }

    public ProveedorView Proveedor
    {
        get { return (ProveedorView)Session["ProveedorView"]; }
        set { Session["ProveedorView"] = value; }
    }

    #endregion

    #region Metodos Publicos

    public void CargarProveedor()
    {
        if (Proveedor.Id != 0)
        {
            NombreEmp = Proveedor.Nombre;
            NombreResp = Proveedor.NombreResp;
            ApellResp = Proveedor.ApellidoResp;
            DNI = Proveedor.DNIResp;
            Contrasenia = Proveedor.Contrasenia;
            Provincia = Proveedor.Provincia.Id;
            CargarComboLocalidad();
            Localidad = Proveedor.Localidad.Id;
            Direccion = Proveedor.Direccion;
            Mail = Proveedor.Mail;
            Telefono = Proveedor.Telefono;
            Usuario = Proveedor.NombreUsuario;
        }
    }

    public void Guardar()
    {
        
        Proveedor.Nombre = NombreEmp;
        Proveedor.NombreResp = NombreResp;
        Proveedor.NombreUsuario = Usuario;
        Proveedor.ApellidoResp = ApellResp;
        Proveedor.DNIResp = DNI;
        Proveedor.Contrasenia = Contrasenia;
        Proveedor.Provincia = ProvinciaHandler.FindById(Provincia);
        Proveedor.Localidad = LocalidadHandler.FindById(Localidad);
        Proveedor.Direccion = Direccion;
        Proveedor.Telefono = Telefono;
        Proveedor.Mail = Mail;
        
        ProveedorHandler.Persist(Proveedor);
    }

    public void CargarCombos()
    {
        CargarComboProvincia();
        CargarComboLocalidad();
    }
        
    #endregion

    #region Metodos Privados

    private void CargarComboProvincia()
    {
        List<ProvinciaView> provincias = new List<ProvinciaView>();

        ProvinciaView tipoSel = new ProvinciaView();
        tipoSel.Id = -1;
        tipoSel.Nombre = "<Seleccionar>";

        provincias.Add(tipoSel);
        provincias.AddRange(ProvinciaHandler.FindAll());

        ddlProvincia.DataSource = provincias;
        ddlProvincia.DataBind();

    }

    private void CargarComboLocalidad()
    {
        List<LocalidadView> localidades = new List<LocalidadView>();

        LocalidadView tipoSel = new LocalidadView();
        tipoSel.Id = -1;
        tipoSel.Nombre = "<Seleccionar>";
        localidades.Add(tipoSel);

        if (Provincia != -1)
        {
            List<ViewFilter> filtros = new List<ViewFilter>();

            filtros.Add(new ViewCommonFilter("Provincia", Provincia));

            localidades.AddRange(LocalidadHandler.FindBy(filtros));
        }
        ddlLocalidad.DataSource = localidades;
        ddlLocalidad.DataBind();
    }

    public void HabilitarControles()
    {
        ddlLocalidad.Enabled = Provincia != -1;
    }

    #endregion

    #region Eventos

    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void ddlProvincia_SelectedIndexChanged(object sender, EventArgs e)
    {
        CargarComboLocalidad();
    }

    #endregion
}
